/**
 * 
 */
package org.yelongframework.model.support.mybatis.mapping.statement;

import org.apache.ibatis.mapping.MappedStatement;
import org.apache.ibatis.mapping.SqlSource;
import org.apache.ibatis.session.Configuration;
import org.yelongframework.model.manager.ModelAndTable;

/**
 * 映射声明建造者
 * 
 * @since 1.0.0
 */
public interface MappedStatementBuilder {

	// ==================================================构造查询声明==================================================

	/**
	 * 构建一个查询的映射声明
	 * 
	 * @param statementId   声明ID
	 * @param modelAndTable 模型表
	 * @param sqlSource     SQL源
	 * @param configuration 配置
	 * @return 查询的映射声明
	 */
	MappedStatement buildSelect(String statementId, ModelAndTable modelAndTable, SqlSource sqlSource,
			Configuration configuration);

}